{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "\n",
    "import pandas\n",
    "\n",
    "import random\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "outputs": [],
   "source": [
    "def generate_real():\n",
    "    real_data = torch.FloatTensor(\n",
    "        [\n",
    "            random.uniform(0.8, 1.0),\n",
    "            random.uniform(0.0, 0.2),\n",
    "            random.uniform(0.8, 1.0),\n",
    "            random.uniform(0.0, 0.2)\n",
    "        ]\n",
    "    )\n",
    "    return real_data\n",
    "\n",
    "\n",
    "class Discriminator(nn.Module):\n",
    "    def __init__(self):\n",
    "        super().__init__()\n",
    "\n",
    "        self.model = nn.Sequential(\n",
    "            nn.Linear(4, 3),\n",
    "            nn.Sigmoid(),\n",
    "            nn.Linear(3, 1),\n",
    "            nn.Sigmoid()\n",
    "\n",
    "        )\n",
    "\n",
    "        self.loss_function = nn.MSELoss()\n",
    "\n",
    "        self.optimiser = torch.optim.SGD(self.parameters(), lr=0.01)\n",
    "\n",
    "        self.counter = 0\n",
    "        self.progress = []\n",
    "\n",
    "    def forward(self, inputs):\n",
    "        return self.model(inputs)\n",
    "\n",
    "    def train(self, inputs, targets):\n",
    "        outputs = self.forward(inputs)\n",
    "\n",
    "        loss = self.loss_function(outputs, targets)\n",
    "\n",
    "        self.counter += 1\n",
    "        if self.counter % 10 == 0:\n",
    "            self.progress.append(loss.item())\n",
    "\n",
    "        if self.counter % 10000 == 0:\n",
    "            print(\"counter=\" + str(self.counter))\n",
    "\n",
    "        self.optimiser.zero_grad()\n",
    "        loss.backward()\n",
    "        self.optimiser.step()\n",
    "\n",
    "    def plot_progress(self):\n",
    "        df = pandas.DataFrame(self.progress, columns=['loss'])\n",
    "        df.plot(ylim=(0, 1.0), figsize=(16, 8), alpha=0.1, marker='.', grid=True, yticks=(0, 0.25, 0.5))\n",
    "\n",
    "\n",
    "def generate_random(size):\n",
    "    return torch.rand(size)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "counter=10000\n",
      "counter=20000\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Figure size 1152x576 with 1 Axes>",
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6gAAAHSCAYAAADhZ+amAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAD3PElEQVR4nOz9aYxtXXof9v3XnvcZa7zjO3Y32aTUtEipSSIKRDUd2+InGYIMxApskEooBQGoAAkiIIYQR1AEyBADCPlgQBYMCeIHhYQDIWAAWYYDqUEJVgCSTfY8v8N971zjGfewpnxYe5/aderUeKtunar6/4BGv/feM+yz9xnWs55nPUtYa0FERERERER03bzrPgAiIiIiIiIigAEqERERERERLQkGqERERERERLQUGKASERERERHRUmCASkREREREREuBASoREREREREtheC6D2DexsaG/eCDD677ME40mUzQbrev+zBoDq/L8uE1WU68LsuH12Q58bosH16T5cTrsnyW/Zr84R/+4ba1dnPRvy1dgPrBBx/gD/7gD677ME701a9+FV/5yleu+zBoDq/L8uE1WU68LsuH12Q58bosH16T5cTrsnyW/ZoIIT497t9Y4ktERERERERLgQEqERERERERLQUGqERERERERLQUlm4NKhERERER0V0ipcTTp0+R5/mlPF6/38d3v/vdS3msN5EkCd555x2EYXjm+zBAJSIiIiIiukZPnz5Ft9vFBx98ACHEGz/eaDRCt9u9hCO7OGstdnZ28PTpU3z44Ydnvh9LfImIiIiIiK5RnudYX1+/lOB0WQghsL6+fu6sMANUIiIiIiKia3abgtPaRV4TA1QiIiIiIqI7rtPpXPchAGCASkREREREREuCASoREREREdENUyqDSaFQKnOpj2utxd/8m38TX/rSl/AzP/Mz+J3f+R0AwIsXL/BLv/RL+Nmf/Vl86Utfwr/5N/8GWmv82q/92uy2/+Af/IM3fn528SUiIiIiIloSw1xCaXvibaQ2eL6fwVpACODRSorQP8g9jqcS0itnfw58gV5ytq1e/vk//+f44z/+Y3z961/H9vY2fv7nfx6/9Eu/hH/2z/4Z/sJf+Av4W3/rb0Frjel0ij/+4z/Gs2fP8K1vfQsAsL+/f/4XPIcZVCIiIiIiohtEagNrgXbsw1r358vyb//tv8Vf+St/Bb7v4/79+/jzf/7P4/d///fx8z//8/gn/+Sf4G//7b+Nb37zm+h2u/jc5z6Hjz76CH/jb/wN/Mt/+S/R6/Xe+PkZoBIRERERES2JXhJirR2d+L973QSrrRCh72G1FeJeNzn076utw49x1uzpSX7pl34Jv/d7v4fHjx/j137t1/Bbv/VbWF1dxde//nV85StfwT/8h/8Qv/7rv/7Gz8MAlYiIiIiI6AaJAg+PV1u430vweLWFKLi8sO7P/bk/h9/5nd+B1hpbW1v4vd/7PfzCL/wCPv30U9y/fx9/7a/9Nfz6r/86vva1r2F7exvGGPzlv/yX8Xf/7t/F1772tTd+fq5BJSIiIiIiumGiwLvUwLT2l/7SX8K/+3f/Dn/qT/0pCCHw9//+38eDBw/wT//pP8Vv/uZvIgxDdDod/NZv/RaePXuGv/pX/yqMcSXGf+/v/b03fn4GqERERERERHfceDwGAAgh8Ju/+Zv4zd/8zUP//qu/+qv41V/91SP3u4ysaRNLfImIiIiIiGgpMEAlIiIiIiKipcAAlYiIiIiIiJYCA1QiIiIiIqJrZq297kO4dBd5TQxQiYiIiIiIrlGSJNjZ2blVQaq1Fjs7O0iS5Fz3YxdfIiIiIiKia/TOO+/g6dOn2NraupTHy/P83IHhVUiSBO+888657sMAlYiIiIiI6BqFYYgPP/zw0h7vq1/9Kn7u537u0h7vbWKJLxERERERES0FBqhERERERES0FBigEhERERER0VJggEpERERERERLgQEqERERERERLQUGqERERERERLQUGKASERERERHRUmCASkREREREREuBASoREREREREtBQaoREREREREtBQYoBIREREREdFSYIBKRERERERES4EBKhERERERES0FBqhERERERES0FBigEhERERER0VJggEpERERERERLgQEqERERERERLQUGqERERERERLQUGKASERERERHRUmCASkREREREREuBASoREREREREtBQaoREREREREtBQYoBIREREREdFSYIBKRERERERES4EBKhERERERES0FBqhERERERES0FBigEhERERER0VJggEpERERERERLgQEqERERERERLQUGqERERERERLQUGKASERERERHRUmCASkREREREREuBASoREREREREtBQaoREREREREtBQYoBIREREREdFSYIBKRERERERES4EBKhERERERES0FBqhERERERES0FBigEhERERER0VJggEpERERERERLgQEqERERERERLQUGqERERERERLQUGKASERERERHRUmCASkREREREREuBASoREREREREtBQaoREREREREtBQYoBIREREREdFSYIBKRERERERES4EBKhERERERES0FBqhERERERES0FBigEhERERER0VJggEpERERERERLgQEqERERERERLQUGqERERERERLQUGKASERERERHRUmCASkREREREREuBASoREREREREtBQaoREREREREtBQYoBIREREREdFSYIBKRERERERES4EBKhERERERES0FBqhERERERES0FBigEhERERER0VJggEpERERERERLgQEqERERERERLQUGqERERERERLQUGKASERERERHRUmCASkREREREREuBASoREREREREtBQaoREREREREtBQYoBIREREREdFSYIBKRERERERES4EBKhERERERES0FBqhERERERES0FBigEhERERER0VJggEpERERERERLgQEqERERERERLQUGqERERERERLQUGKASERERERHRUmCASkREREREREuBASoREREREREtBQaoREREREREtBQYoBIREREREdFSYIBKRERERERES4EBKhERERERES0FBqhERERERES0FBigEhERERER0VJggEpERERERERLgQEqERERERERLQUGqERERERERLQUGKASERERERHRUmCASkREREREREuBASoREREREREtBQaoREREREREtBQYoBIREREREdFSYIBKRERERERES4EBKhERERERES0FBqhERERERES0FBigEhERERER0VJggEpERERERERLgQEqERERERERLQUGqERERERERLQUGKASERERERHRUmCASkREREREREuBASoREREREREtBQaoREREREREtBQYoBIREREREdFSYIBKRERERERES4EBKhERERERES0FBqhERERERES0FBigEhERERER0VJggEpERERERERLgQEqERERERERLQUGqERERERERLQUGKASERERERHRUmCASkREREREREuBASoREREREREtBQaoREREREREtBQYoBIREREREdFSYIBKRERERERES4EBKhERERERES0FBqhERERERES0FBigEhERERER0VJggEpERERERERLgQEqERERERERLQUGqERERERERLQUGKASERERERHRUmCASkREREREREuBASoREREREREtBQaoREREREREtBQYoBIREREREdFSYIBKRERERERES4EBKhERERERES0FBqhERERERES0FBigEhERERER0VJggEpERERERERLgQEqERERERERLQUGqERERERERLQUGKASERERERHRUmCASkREREREREuBASoREREREREtBQaoREREREREtBQYoBIREREREdFSYIBKRERERERES4EBKhERERERES0FBqhERERERES0FBigEhERERER0VJggEpERERERERLgQEqERERERERLQUGqERERERERLQUGKASERERERHRUmCASkREREREREuBASoREREREREtBQaoREREREREtBQYoBIREREREdFSYIBKRERERERES4EBKhERERERES0FBqhERERERES0FBigEhERERER0VJggEpERERERERLgQEqERERERERLQUGqERERERERLQUGKASERERERHRUmCASkREREREREuBASoREREREREtBQaoREREREREtBQYoBIREREREdFSCK77AIiIiIiI6PYrlYHUBqHvIQqYJ6PFGKASEREREdGVmhYK334xRC8JEPkeHq+2zhSkFlJDaoMo8BnU3hEMUImIiIiI6EqNCwVYC98TsEAVdJ4ccJbK4BvPBhDWYr0TnzmopZuNV5iIiIiIiK5U6HuAEJiWGqL+8ymkNoC1SKJgFtTS7ccMKhERERERXako8PCwnyDwBNba8ZkyoXVQm5UK7cg/U1BLNx8DVCIiIiIiunKh7yGNzr6WtA5qpTZ4vMLy3ruCASoRERERES2l0PfY9feOYYBKRERERER3HrfBWQ4MUImIiIiI6E4rlcHH22MobdGKfHYMvkY860REREREdKdJbTDMJCzAjsHXjAEqERERERHdac2OwWfdBoeuBkt8iYiIiIjoTmPH4OXBAJWIiIiIiO68ZewYfBcbNzFAJSIiIiIiWjKF1PjGswHakY80vDuNm27/KyQiIiIiIrphcqkBayGEuFONmxigEhERERERLZm6cdO0uFuNm1jiS0REREREtGTqxk3GWjzopXeivBdggEpERERERLSUQt+D74k7E5wCLPElIiIiIiKiJcEAlYiIiIiIiJYCS3yJiIiI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\n"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "D = Discriminator()\n",
    "\n",
    "for i in range(10000):\n",
    "    D.train(generate_real(), torch.FloatTensor([1.0]))\n",
    "    D.train(generate_random(4), torch.FloatTensor([0.0]))\n",
    "\n",
    "D.plot_progress()"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "outputs": [
    {
     "data": {
      "text/plain": "0.8421535491943359"
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "D.forward(generate_real()).item()"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "outputs": [
    {
     "data": {
      "text/plain": "0.14864982664585114"
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "D.forward(generate_random(4)).item()\n"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "outputs": [],
   "source": [
    "class Generator(nn.Module):\n",
    "    def __init__(self):\n",
    "        super().__init__()\n",
    "\n",
    "        self.model = nn.Sequential(\n",
    "            nn.Linear(1, 3),\n",
    "            nn.Sigmoid(),\n",
    "            nn.Linear(3, 4),\n",
    "            nn.Sigmoid()\n",
    "        )\n",
    "\n",
    "        self.optimiser = torch.optim.SGD(self.parameters(), lr=0.01)\n",
    "\n",
    "        self.counter = 0\n",
    "        self.progress = []\n",
    "\n",
    "        pass\n",
    "\n",
    "    def forward(self, inputs):\n",
    "        return self.model(inputs)\n",
    "\n",
    "    def train(self, D, inputs, targets):\n",
    "        g_output = self.forward(inputs)\n",
    "\n",
    "        d_output = D.forward(g_output)\n",
    "\n",
    "        loss = D.loss_function(d_output, targets)\n",
    "\n",
    "        self.counter += 1\n",
    "        if (self.counter % 10 == 0):\n",
    "            self.progress.append(loss.item())\n",
    "            pass\n",
    "\n",
    "        self.optimiser.zero_grad()\n",
    "        loss.backward()\n",
    "        self.optimiser.step()\n"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "outputs": [
    {
     "data": {
      "text/plain": "tensor([0.4962, 0.4635, 0.5613, 0.5427], grad_fn=<SigmoidBackward>)"
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "G=Generator()\n",
    "G.forward(torch.FloatTensor([0.5]))"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "counter=10000\n",
      "counter=20000\n"
     ]
    }
   ],
   "source": [
    "\n",
    "D=Discriminator()\n",
    "G=Generator()\n",
    "image_list=[]\n",
    "for i in range(10000):\n",
    "    D.train(generate_real(),torch.FloatTensor([1.0]))\n",
    "    # 训练鉴别器\n",
    "    D.train(G.forward(torch.FloatTensor([0.5])).detach(),torch.FloatTensor([0.0]))\n",
    "    # 训练生成器\n",
    "    G.train(D,torch.FloatTensor([0.5]),torch.FloatTensor([1.0]))\n",
    "\n",
    "    if(i%1000==0):\n",
    "        image_list.append(G.forward(torch.FloatTensor([0.5])).detach().numpy())"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%time\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 1152x576 with 1 Axes>",
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6gAAAHSCAYAAADhZ+amAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAA3hElEQVR4nO3de5Bl+UEf9u/vnHtvd890z+zszu7sS9KuHiCEZCRYhB0HIYINwk5BiJ0EEtsStoydWE4cl52CUMEUxgVGSaikygkmthyUMpbsBMcylsFUsCKo8NBqpUXS6rVa7Uqz2ufMzqOnp7vvveeXP+7tnp7nTu/OzpyZ/Xyqus7t2/d0n3t/fR7f83uVWmsAAADgWmuu9QYAAABAIqACAADQEwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALg2u9Aec6ePBgveeee671ZlzSqVOnsnfv3mu9GZxDufSPMukn5dI/yqSflEv/KJN+Ui790/cy+fjHP/5srfXWC/2sdwH1nnvuyf3333+tN+OSPvKRj+Ttb3/7td4MzqFc+keZ9JNy6R9l0k/KpX+UST8pl/7pe5mUUh672M808QUAAKAXBFQAAAB6QUAFAACgF3rXBxUAAODlZDwe5/Dhw1lfX78iv2///v357Gc/e0V+14uxuLiYu+++O8Ph8LLXEVABAACuocOHD2dlZSX33HNPSikv+vedPHkyKysrV2DLXrhaa44cOZLDhw/n3nvvvez1NPEFAAC4htbX13PLLbdckXDaF6WU3HLLLbuuFRZQAQAArrEbKZxueSHvSUAFAAB4mVteXr7Wm5BEQAUAAKAnBFQAAIDrzOaky6mNSTYn3RX9vbXW/M2/+Tfzxje+MW9605vywQ9+MEnyxBNP5G1ve1ve/OY3541vfGN+67d+K9PpNO9617u2X/vzP//zL/rvG8UXAACgJ06sjzOZ1ku+Zjzt8rVjp1NrUkpy501LGbZn6h5X18YZN5vb3w/akn2LlzfVy6/8yq/kk5/8ZB588ME8++yz+dZv/da87W1vyy//8i/ne77ne/LjP/7jmU6nWVtbyyc/+ck8/vjj+fSnP50kOXbs2O7f8DnUoAIAAFxHxtMutSZ7F9rUOvv+Svnt3/7t/NAP/VDats2hQ4fyHd/xHfnYxz6Wb/3Wb80/+kf/KD/5kz+ZT33qU1lZWcmrX/3qPPLII/mrf/Wv5td+7deyb9++F/33BVQAAICe2Lc4zM17R5f8um1lMQf2DDNsmxzYM8xtK4tn/fzAnrN/x+XWnl7K2972tnz0ox/NXXfdlXe96115//vfnwMHDuTBBx/M29/+9vzCL/xC3v3ud7/ovyOgAgAAXEdGgyZ3HdiTQ/sWc9eBPRkNrlys+/Zv//Z88IMfzHQ6zTPPPJOPfvSjeetb35rHHnsshw4dyl/8i38x7373u/PAAw/k2WefTdd1+VN/6k/lp3/6p/PAAw+86L+vDyoAAMB1ZjRormgw3fIDP/AD+Z3f+Z180zd9U0op+bmf+7ncfvvt+aVf+qW8973vzXA4zPLyct7//vfn8ccfzw//8A+n62ZNjH/mZ37mRf99ARUAAOBlbnV1NUlSSsl73/vevPe97z3r5+985zvzzne+87z1rkSt6U6a+AIAANALAioAAAC9IKACAADQCwIqAADANVZrvdabcMW9kPckoAIAAFxDi4uLOXLkyA0VUmutOXLkSBYXF3e1nlF8AQAArqG77747hw8fzjPPPHNFft/6+vqug+FLYXFxMXffffeu1hFQAQAArqHhcJh77733iv2+j3zkI3nLW95yxX7f1aSJLwAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9cFkBtZTyjlLK50spD5dSfvQCP39XKeWZUson51/v3vGzd5ZSvjj/eueV3HgAAABuHIPne0EppU3y95L88SSHk3yslPKhWutD57z0g7XW95yz7s1J/laS+5LUJB+fr/vcFdl6AAAAbhiXU4P61iQP11ofqbVuJvlAku+/zN//PUl+o9Z6dB5KfyPJO17YpgIAAHAjK7XWS7+glD+d5B211nfPv/+zSb5tZ21pKeVdSX4myTNJvpDkv661frWU8jeSLNZaf3r+uv8uyela639/zt/4kSQ/kiSHDh36lg984ANX6O29NFZXV7O8vHytN4NzKJf+USb9pFz6R5n0k3LpH2XST8qlf/peJt/5nd/58VrrfRf62fM28b1M/zLJP6m1bpRS/lKSX0ry713uyrXWX0zyi0ly33331be//e1XaLNeGh/5yEfS9218OVIu/aNM+km59I8y6Sfl0j/KpJ+US/9cz2VyOU18H0/yih3f3z1/blut9UitdWP+7T9I8i2Xuy4AAAAklxdQP5bkdaWUe0spoyQ/mORDO19QSrljx7ffl+Sz88e/nuS7SykHSikHknz3/DkAAAA4y/M28a21Tkop78ksWLZJ3ldr/Uwp5aeS3F9r/VCS/7KU8n1JJkmOJnnXfN2jpZS/nVnITZKfqrUefQneBwAAANe5y+qDWmv9cJIPn/PcT+x4/GNJfuwi674vyftexDYCAADwMnA5TXwBAADgJSegAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9IKACAADQCwIqAAAAvSCgAgAA0AsCKgAAAL0goAIAANALAioAAAC9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\n"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "D.plot_progress()"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "outputs": [
    {
     "data": {
      "text/plain": "tensor([0.8890, 0.0664, 0.9056, 0.0674], grad_fn=<SigmoidBackward>)"
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "G.forward(torch.FloatTensor([0.5]))"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "outputs": [],
   "source": [
    "image_list=[]\n",
    "if(i%1000==0):\n",
    "    image_list.append(G.forward(torch.FloatTensor([0.5])).detach().numpy())"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "outputs": [
    {
     "data": {
      "text/plain": "<matplotlib.image.AxesImage at 0x1ac17227130>"
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": "<Figure size 1152x576 with 1 Axes>",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy\n",
    "plt.figure(figsize=(16,8))\n",
    "plt.imshow(numpy.array(image_list).T,interpolation='none',cmap='Blues')"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "outputs": [
    {
     "data": {
      "text/plain": "0"
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "torch.cuda.memory_allocated()"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}